﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Drawing;
using BattleCity;

namespace BattleCityTests.IntegracionTests
{
    [TestClass]
    public class TestsIntegracion
    {
        [TestMethod]
        public void TestTanqueDisparaTanque()
        {
            //Arrange
            Escenario escenario = Escenario.getEscenario();
            escenario.Objetos.Clear();
            TanqueUser.Reset();
            TanqueUser tanqueUsuario = TanqueUser.getTanqueUser();
            tanqueUsuario.AvanzarArriba();
            TanqueIFV tanque = new TanqueIFV();
            tanque.LanzarAlEscenario(new Point(200, 170));

            //Act
            tanqueUsuario.AtacarConAmetralladora();

            //Assert
            Assert.IsTrue(tanque.Energia == 65);
        }

        [TestMethod]
        public void TestTanqueDisparaMuroYTanque()
        {
            //Arrange
            Escenario escenario = Escenario.getEscenario();
            escenario.Objetos.Clear();
            TanqueUser.Reset();
            TanqueUser tanqueUsuario = TanqueUser.getTanqueUser();
            tanqueUsuario.AvanzarArriba();
            TanqueIFV tanque = new TanqueIFV();
            MuroCemento muro = new MuroCemento(new Point(200, 180));
            escenario.Objetos.Add(muro);
            tanque.LanzarAlEscenario(new Point(200, 150));
            
            //Act
            tanqueUsuario.AtacarConAmetralladora();

            //Assert
            Assert.IsTrue(tanque.Energia == 85);
            Assert.IsTrue(muro.Energia == 40);
        }
        [TestMethod]
        public void TestTanqueDisparaMuro()
        {
            //Arrange
            Escenario escenario = Escenario.getEscenario();
            escenario.Objetos.Clear();
            TanqueUser.Reset();
            TanqueUser tanqueUsuario = TanqueUser.getTanqueUser();
            tanqueUsuario.AvanzarArriba();
            MuroMetal muro = new MuroMetal(new Point(200, 180));
            escenario.Objetos.Add(muro);

            //Act
            tanqueUsuario.AtacarConAmetralladora();

            //Assert
            Assert.IsTrue(muro.Energia == 70);
        }
    }
}
